import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int  n=sc.nextInt();
        int  m=sc.nextInt();
        int[] array1 = new int[2];
        int[] array2 = new int[2];
        Solution1 s=new Solution1();
        for(int i=0;i<n;i++){
            array1[i]=sc.nextInt();
        }
        for(int i=0;i<m;i++){
            array2[i]=sc.nextInt();
        }
        System.out.println(s.findMedianSortedArrays(array1, array2));
    }
    public static void main1(String[] args) {
        Scanner sc=new Scanner(System.in);
        int  n=sc.nextInt();
        int k=sc.nextInt();
        int[] array=new int[100];
        Solution s=new Solution();
        for(int i=0;i<n;i++){
            array[i]=sc.nextInt();
        }
        System.out.println(s.countPairs(array, k));
    }
}

class Solution {
    public int countPairs(int[] nums, int k) {
        int res=0;
        for(int i=0;i<nums.length-1;i++){
            for (int j = i+1; j < nums.length; j++) {
                if(nums[i]==nums[j]){
                    if(i*j%k==0){
                        res++;
                    }
                }
            }
        }
        return res;
    }
}

class Solution1 {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int n = nums1.length;
        int m = nums2.length;
        int r = 0, l = 0;
        double res = 0;
        int[]dp=new int[n+m];
        //arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
        //src被复制的数组，srcPos被复制数组的初始点
        //dest复制到的数组，destPost复制到数组的初始点，length复制的长度
        System.arraycopy(nums1,0,dp,0,n);
        System.arraycopy(nums2,0,dp,n,n+m);
        Arrays.sort(dp);
        if((n+m)%2==0){
            res=(dp[(n+m)/2]+dp[(n+m)/2-1])/2.0;
        }else {
            res=dp[(n+m)/2];
        }
        return res;
    }
}

//class Solution1 {
//    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
//        int n = nums1.length;
//        int m = nums2.length;
//        int r = 0, l = 0;
//        double res = 0;
//        int[]dp=new int[2005];
//        int num=0;
//        while(l<n&&r<m){
//            if(nums1[l]<nums2[r]){
//                dp[num++]=nums1[l++];
//            }else {
//                dp[num++]=nums2[r++];
//            }
//        }
//        for(int i=l;i<n;i++){
//            dp[num++]=nums1[i];
//        }
//        for(int j=r;j<m;j++){
//            dp[num++]=nums2[j];
//        }
//        System.out.println(l+ " " + r + " " + n + " " + m);
//        if((n+m)%2==0){
//            res=(dp[(n+m)/2]+dp[(n+m)/2-1])/2.0;
//        }else {
//            res=dp[(n+m)/2];
//        }
//        return res;
//    }
//}